package cn.wolfcode.service;


import cn.wolfcode.domain.OrderInfo;
import cn.wolfcode.mq.OrderMQResult;

import java.util.Map;

/**
 * Created by wolfcode-lanxw
 */
public interface IOrderInfoService {
    /*
    * 秒杀
    * seckillId 秒杀商品id
    *time 场次
    *phone 手机号
    * 返回一个订单编号
    * */
    
    String doSeckill(Long seckillId, int time, Long phone);

    /**
     * 订单超过指定时间没有支付,回补库存
     * @param message
     */
    void orderTimeout(OrderMQResult message);

    /**
     *
     * 根据订单编号去查询订单信息
     * @param orderNo
     * @return
     */
    OrderInfo find(String orderNo);

    /**
     * 线上支付
     * @param orderNo 订单编号
     * @return 返回一个字符串
     */
    String payOnline(String orderNo);

    /**
     * 异步回调
     * @param orderNo
     */
    void paySuccess(String orderNo);

    /**
     * 线上退款流程
     * @param orderInfo
     */
    void refundOnline(OrderInfo orderInfo);

    /**
     * 积分支付
     * @param orderNo
     */
    void payIntergral(String orderNo);

    /**
     * 积分退款流程
     * @param orderInfo
     */
    void refundIntergral(OrderInfo orderInfo);
}
